package Modelo.DAL;

import Modelo.Piso;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.json.JSONObject;

/**
 *
 * @author Alberto Sanchez
 */
public class Piso_DAO {

    public Piso_DAO() {
    }

    public JSONObject listPisos() {
        ConexionBD conexion = new ConexionBD();
        if (conexion.session == null) {
            return null;
        }
        Statement s = null;
        try {
            s = conexion.session.createStatement();
            String query = "select * from piso";
//            String query = "select e.nombre_espacio, e.coordX, e.coordY, count(p.id_piso) "
//                    + "from espacio e LEFT OUTER JOIN piso p ON (e.nombre_espacio=p.nombre_edificio) "
//                    + "group by nombre_espacio, e.coordX, e.coordY";
            ResultSet rs = s.executeQuery(query);

            conexion.session.setHoldability(rs.HOLD_CURSORS_OVER_COMMIT);

            JSONObject espacios = new JSONObject();
//            int i = 0;
//            while (rs.next()) {
//                JSONObject jo2 = new JSONObject();
//                jo2.put("nombre", rs.getString(1));
//                jo2.put("coordX", rs.getString(2));
//                jo2.put("coordY", rs.getString(3));
//
//                espacios.put(++i + "", jo2);
//            }
            rs.close();
            return espacios;
        } catch (SQLException se) {
            System.out.println("Error Consultando Espacios!\n");
            return null;
        } catch (Exception ex) {
            System.out.println("Error Consultando Espacios!\n");
            return null;
        } finally {
            if (conexion != null) {
                conexion.cerrarConexion();
            }
        }
    }

    public static boolean insertPiso(Piso ps) {
        ConexionBD conexion = new ConexionBD();
        Statement s = null;

        try {
            s = conexion.session.createStatement();
        } catch (SQLException se) {
            System.out.println("Error Insertando Piso!");
            return false;
        }
        String query = "INSERT INTO piso(id_piso, nombre_edificio, nombre_sede, ruta_plano) VALUES"
                + " (" + ps.getIdPiso() + ","
                + "'" + ps.getNombreEdificio() + "',"
                + "'" + ps.getNombre_sede() + "',"
                + " '" + ps.getRuta_plano().replace("\\", "\\\\") + "');";
        System.out.println(query);
        try {
            s.executeUpdate(query);
            return true;
        } catch (SQLException se) {
            System.out.println("Error Insertando el Piso! " + se.getMessage());
            return false;
        }
    }
}
